package org.dromara.sms4j;

import cn.hutool.core.lang.Assert;
import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.universal.SupplierConfig;
import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtils;
import org.dromara.sms4j.core.factory.SmsFactory;
import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.javase.config.SEInitializer;
import org.dromara.sms4j.provider.config.SmsConfig;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
import org.dromara.sms4j.test.Test;
import org.dromara.sms4j.unisms.config.UniConfig;
import sms4j.dao.MySmsDao;
import sms4j.local.LocalFactory;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
//Yaml和Json和Yaml字符串的使用方法其实非常类似，就是配置读取不同，所以这三种样例就展示一种
public class SESms4jTestByYaml {

    public static void main(String[] args) {
        byLoadYml();
        Test test = new Test();
        test.doTest();
    }

    public static void byLoadYml() {
        String str="sms:\n" +
                "  # 标注从yml读取配置\n" +
                "  config-type: yaml\n" +
                "  # 账户上限\n" +
                "  account-max: 4\n" +
                "  blends:\n" +
                "    # 本地测试供应商\n" +
                "    local:\n" +
                "      supplier: local\n" +
                "      maximum: 6";
        // 实例化自定义的短信实现方式（根据实现方式实例化）
        LocalFactory factory = new LocalFactory();
        // 这是第二种自定义服务商注入的方法 注意：注册服务商->加载配置的Bean->使用，这个顺序不可以改变
        ProviderFactoryHolder.registerFactory(factory);
        SEInitializer.initializer().fromYaml(str);
    }
}
